VolumeParam
VolumeParam structure
#include <Files.h>
typedef struct VolumeParam { Size Offset Description
ParamBlockHeader 24 0 common fields of ParamBlock types
long filler2; 4 24 ( reserved)
short ioVolIndex; 2 28 (>0: index, <0: use name/num, 0:
use num)
unsigned long ioVCrDate; 4 30 Date/time volume created
unsigned long ioVLsBkUp; 4 34 Date/time volume information was
modified
unsigned short ioVAtrb; 2 38 Volume Attributes
unsigned short ioVNmFls; 2 40 Count of files in the root directory
unsigned short ioVDirSt; 2 42 First allocation block of directory
short ioVBlLn; 2 44 Length of directory in blocks
unsigned short ioVNmAlBlks; 2 46 Count of all allocation blocks
long ioVAlBlkSiz; 4 48 Allocation block size, in bytes
long ioVClpSiz; 4 52 Number of bytes to allocate
unsigned short ioAlBlSt; 2 56 First block in volume block map
unsigned long ioVNxtFNum; 4 58 Next unused file number
unsigned short ioVFrBlk; 2 62 Count of free allocation blocks

Notes: This structure is used in PBxxx calls which operate on entire volumes:
PBFlushVol PBMountVol PBSetVol
PBGetVInfo PBOffLine PBUnmountVol
Functions vary as to which fields are required on entry and which fields
are defined upon return. Some fields take on different meanings or even
data types in certain cases. Refer to the function in question for additional
information on fields.
The ioVLsBkUp field is misnamed. It contains the date/time when the file
was last modified (Note: data may have actually been flushed to disk
somewhat later).
The ioVAtrb field is a set of bit flags. See Volume Attributes.
The ioVClpSiz field is the default allocation "clump" size for files on this
volume. If the file's clump size is 0 (see CInfoPBRec), then when a file is
extended, ioVClpSiz bytes are appended to the file's physical length.
The most common way to use this structure is to allocate a union which is
an aggregate and create and initialize a pointer to the desired data type. See
ParamBlockRec for examples.